{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. 数据准备"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 导入必要的工具包\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "from sklearn.feature_extraction.text import TfidfTransformer\n",
    "from sklearn.cluster import MiniBatchKMeans\n",
    "from sklearn import metrics\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.1 筛选只在训练集和测试集中出现的 event"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "13418"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 抽取训练集中和测试集中的events\n",
    "uniqueEvents = set()\n",
    "\n",
    "for filename in [\"train.csv\", \"test.csv\"]:\n",
    "    f = open(filename, 'r')\n",
    "    \n",
    "    f.readline().strip().split(\",\")     # 跳过第一行（列名字）\n",
    "    \n",
    "    for line in f:\n",
    "        cols = line.strip().split(\",\")\n",
    "        uniqueEvents.add(cols[1])       # 第二列为 event_id\n",
    "        \n",
    "    f.close()\n",
    "\n",
    "len(uniqueEvents)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.2 读取 events 数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(13418, 101)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "file = open('events.csv', 'r')\n",
    "file.readline().strip().split(\",\")     # 跳过第一行（列名字）\n",
    "records = []\n",
    "index = []\n",
    "for line in file:    \n",
    "    d = line.strip().split(\",\")    \n",
    "    if d[0] in uniqueEvents:\n",
    "        records.append(d[9:])         # 从第十维开始为关键词特征\n",
    "        index.append(d[0])            # 第一列为 event_id\n",
    "\n",
    "file.close()\n",
    "\n",
    "data = np.array(records).astype(np.int)\n",
    "data.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "筛选出只在训练集和测试集中出现的 event 和词频特征后，共有13418条数据，101维特征。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. 数据预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#计算tf-idf\n",
    "tfidf = TfidfTransformer()\n",
    "X = tfidf.fit_transform(data).toarray()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "sklearn 中计算 tf-idf 默认采用 L2 归一化，已将向量的模转化为 1，可直接用于聚类，无需再进行归一化处理。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. 聚类及评价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# 将数据聚为K类，并评价聚类算法性能\n",
    "def cluster_analysis(K, X):\n",
    "    \n",
    "    print('K-means begin with %d clusters：'% K)\n",
    "    \n",
    "    # K-means聚类\n",
    "    mb_kmeans = MiniBatchKMeans(n_clusters = K, init='k-means++', max_iter=300, n_init=10)\n",
    "    y_pred = mb_kmeans.fit_predict(X)\n",
    "    \n",
    "    # 计算轮廓系数和CH索引\n",
    "    silh_score = metrics.silhouette_score(X,y_pred)\n",
    "    CH_score = metrics.calinski_harabaz_score(X,y_pred)\n",
    "    \n",
    "    # 输出模型性能评价\n",
    "    print(\"Silhouette score: %.3f, CH score: %.3f\" % (silh_score, CH_score))\n",
    "    \n",
    "    # 输出每一类的样本数目\n",
    "    cls = 0\n",
    "    cnt = 0\n",
    "    for i in range(K):\n",
    "        if len(X[y_pred==i]) >= 10:     # 设置每类最小样本数，可设置不同阈值，这里取10，小于10则合并成一类\n",
    "            cls += 1    \n",
    "            cnt += len(X[y_pred==i])\n",
    "            print('Cluster %d: %d events; ' % (cls, len(X[y_pred==i])), end='')\n",
    "    print('Others: %d events' % (13418-cnt))\n",
    "\n",
    "    return silh_score, CH_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "K-means begin with 10 clusters：\n",
      "Silhouette score: 0.129, CH score: 645.649\n",
      "Cluster 1: 421 events; Cluster 2: 217 events; Cluster 3: 1509 events; Cluster 4: 339 events; Cluster 5: 200 events; Cluster 6: 494 events; Cluster 7: 3969 events; Cluster 8: 6145 events; Cluster 9: 115 events; Others: 9 events\n",
      "K-means begin with 20 clusters：\n",
      "Silhouette score: 0.054, CH score: 379.819\n",
      "Cluster 1: 1815 events; Cluster 2: 126 events; Cluster 3: 17 events; Cluster 4: 2320 events; Cluster 5: 329 events; Cluster 6: 523 events; Cluster 7: 296 events; Cluster 8: 73 events; Cluster 9: 1292 events; Cluster 10: 1760 events; Cluster 11: 91 events; Cluster 12: 57 events; Cluster 13: 14 events; Cluster 14: 57 events; Cluster 15: 91 events; Cluster 16: 3752 events; Cluster 17: 165 events; Cluster 18: 279 events; Cluster 19: 357 events; Others: 4 events\n",
      "K-means begin with 30 clusters：\n",
      "Silhouette score: 0.032, CH score: 315.046\n",
      "Cluster 1: 1979 events; Cluster 2: 235 events; Cluster 3: 777 events; Cluster 4: 234 events; Cluster 5: 56 events; Cluster 6: 978 events; Cluster 7: 123 events; Cluster 8: 109 events; Cluster 9: 58 events; Cluster 10: 79 events; Cluster 11: 170 events; Cluster 12: 107 events; Cluster 13: 144 events; Cluster 14: 387 events; Cluster 15: 126 events; Cluster 16: 121 events; Cluster 17: 2087 events; Cluster 18: 102 events; Cluster 19: 100 events; Cluster 20: 195 events; Cluster 21: 132 events; Cluster 22: 265 events; Cluster 23: 140 events; Cluster 24: 234 events; Cluster 25: 657 events; Cluster 26: 439 events; Cluster 27: 262 events; Cluster 28: 1963 events; Cluster 29: 214 events; Cluster 30: 945 events; Others: 0 events\n",
      "K-means begin with 40 clusters：\n",
      "Silhouette score: -0.005, CH score: 222.886\n",
      "Cluster 1: 1098 events; Cluster 2: 239 events; Cluster 3: 521 events; Cluster 4: 826 events; Cluster 5: 1480 events; Cluster 6: 164 events; Cluster 7: 33 events; Cluster 8: 26 events; Cluster 9: 148 events; Cluster 10: 59 events; Cluster 11: 186 events; Cluster 12: 454 events; Cluster 13: 43 events; Cluster 14: 1556 events; Cluster 15: 700 events; Cluster 16: 46 events; Cluster 17: 12 events; Cluster 18: 253 events; Cluster 19: 54 events; Cluster 20: 102 events; Cluster 21: 27 events; Cluster 22: 39 events; Cluster 23: 109 events; Cluster 24: 45 events; Cluster 25: 177 events; Cluster 26: 1791 events; Cluster 27: 39 events; Cluster 28: 94 events; Cluster 29: 67 events; Cluster 30: 91 events; Cluster 31: 356 events; Cluster 32: 667 events; Cluster 33: 120 events; Cluster 34: 57 events; Cluster 35: 140 events; Cluster 36: 1533 events; Cluster 37: 44 events; Others: 22 events\n",
      "K-means begin with 50 clusters：\n",
      "Silhouette score: 0.017, CH score: 193.143\n",
      "Cluster 1: 285 events; Cluster 2: 1216 events; Cluster 3: 196 events; Cluster 4: 449 events; Cluster 5: 661 events; Cluster 6: 69 events; Cluster 7: 224 events; Cluster 8: 152 events; Cluster 9: 85 events; Cluster 10: 18 events; Cluster 11: 71 events; Cluster 12: 17 events; Cluster 13: 154 events; Cluster 14: 322 events; Cluster 15: 2956 events; Cluster 16: 105 events; Cluster 17: 104 events; Cluster 18: 61 events; Cluster 19: 295 events; Cluster 20: 116 events; Cluster 21: 25 events; Cluster 22: 19 events; Cluster 23: 1723 events; Cluster 24: 56 events; Cluster 25: 48 events; Cluster 26: 15 events; Cluster 27: 401 events; Cluster 28: 110 events; Cluster 29: 23 events; Cluster 30: 172 events; Cluster 31: 43 events; Cluster 32: 1122 events; Cluster 33: 25 events; Cluster 34: 134 events; Cluster 35: 11 events; Cluster 36: 68 events; Cluster 37: 23 events; Cluster 38: 83 events; Cluster 39: 171 events; Cluster 40: 11 events; Cluster 41: 188 events; Cluster 42: 1076 events; Cluster 43: 76 events; Cluster 44: 69 events; Cluster 45: 93 events; Cluster 46: 59 events; Others: 18 events\n",
      "K-means begin with 60 clusters：\n",
      "Silhouette score: -0.006, CH score: 164.760\n",
      "Cluster 1: 67 events; Cluster 2: 66 events; Cluster 3: 868 events; Cluster 4: 74 events; Cluster 5: 202 events; Cluster 6: 90 events; Cluster 7: 1202 events; Cluster 8: 64 events; Cluster 9: 288 events; Cluster 10: 36 events; Cluster 11: 279 events; Cluster 12: 60 events; Cluster 13: 287 events; Cluster 14: 32 events; Cluster 15: 10 events; Cluster 16: 61 events; Cluster 17: 214 events; Cluster 18: 404 events; Cluster 19: 36 events; Cluster 20: 273 events; Cluster 21: 1103 events; Cluster 22: 109 events; Cluster 23: 93 events; Cluster 24: 132 events; Cluster 25: 305 events; Cluster 26: 33 events; Cluster 27: 31 events; Cluster 28: 873 events; Cluster 29: 1952 events; Cluster 30: 1433 events; Cluster 31: 43 events; Cluster 32: 27 events; Cluster 33: 336 events; Cluster 34: 435 events; Cluster 35: 302 events; Cluster 36: 11 events; Cluster 37: 74 events; Cluster 38: 19 events; Cluster 39: 16 events; Cluster 40: 256 events; Cluster 41: 361 events; Cluster 42: 50 events; Cluster 43: 16 events; Cluster 44: 60 events; Cluster 45: 135 events; Cluster 46: 45 events; Cluster 47: 55 events; Cluster 48: 84 events; Cluster 49: 13 events; Cluster 50: 50 events; Cluster 51: 21 events; Cluster 52: 10 events; Cluster 53: 200 events; Cluster 54: 90 events; Others: 32 events\n",
      "K-means begin with 70 clusters：\n",
      "Silhouette score: 0.045, CH score: 180.668\n",
      "Cluster 1: 375 events; Cluster 2: 304 events; Cluster 3: 81 events; Cluster 4: 116 events; Cluster 5: 100 events; Cluster 6: 73 events; Cluster 7: 44 events; Cluster 8: 49 events; Cluster 9: 129 events; Cluster 10: 163 events; Cluster 11: 139 events; Cluster 12: 95 events; Cluster 13: 98 events; Cluster 14: 810 events; Cluster 15: 164 events; Cluster 16: 34 events; Cluster 17: 70 events; Cluster 18: 513 events; Cluster 19: 237 events; Cluster 20: 104 events; Cluster 21: 597 events; Cluster 22: 56 events; Cluster 23: 212 events; Cluster 24: 51 events; Cluster 25: 93 events; Cluster 26: 673 events; Cluster 27: 126 events; Cluster 28: 258 events; Cluster 29: 200 events; Cluster 30: 86 events; Cluster 31: 94 events; Cluster 32: 71 events; Cluster 33: 217 events; Cluster 34: 86 events; Cluster 35: 52 events; Cluster 36: 1726 events; Cluster 37: 74 events; Cluster 38: 551 events; Cluster 39: 254 events; Cluster 40: 269 events; Cluster 41: 125 events; Cluster 42: 77 events; Cluster 43: 1125 events; Cluster 44: 52 events; Cluster 45: 71 events; Cluster 46: 177 events; Cluster 47: 36 events; Cluster 48: 119 events; Cluster 49: 213 events; Cluster 50: 44 events; Cluster 51: 25 events; Cluster 52: 50 events; Cluster 53: 63 events; Cluster 54: 110 events; Cluster 55: 66 events; Cluster 56: 68 events; Cluster 57: 125 events; Cluster 58: 20 events; Cluster 59: 14 events; Cluster 60: 53 events; Cluster 61: 64 events; Cluster 62: 126 events; Cluster 63: 19 events; Cluster 64: 42 events; Cluster 65: 125 events; Cluster 66: 659 events; Cluster 67: 198 events; Cluster 68: 62 events; Cluster 69: 42 events; Others: 4 events\n",
      "K-means begin with 80 clusters：\n",
      "Silhouette score: 0.027, CH score: 158.544\n",
      "Cluster 1: 174 events; Cluster 2: 532 events; Cluster 3: 103 events; Cluster 4: 44 events; Cluster 5: 123 events; Cluster 6: 101 events; Cluster 7: 82 events; Cluster 8: 112 events; Cluster 9: 55 events; Cluster 10: 223 events; Cluster 11: 242 events; Cluster 12: 39 events; Cluster 13: 585 events; Cluster 14: 39 events; Cluster 15: 26 events; Cluster 16: 129 events; Cluster 17: 256 events; Cluster 18: 123 events; Cluster 19: 194 events; Cluster 20: 52 events; Cluster 21: 93 events; Cluster 22: 114 events; Cluster 23: 115 events; Cluster 24: 93 events; Cluster 25: 156 events; Cluster 26: 106 events; Cluster 27: 65 events; Cluster 28: 74 events; Cluster 29: 15 events; Cluster 30: 95 events; Cluster 31: 39 events; Cluster 32: 108 events; Cluster 33: 132 events; Cluster 34: 366 events; Cluster 35: 67 events; Cluster 36: 728 events; Cluster 37: 59 events; Cluster 38: 35 events; Cluster 39: 125 events; Cluster 40: 61 events; Cluster 41: 44 events; Cluster 42: 87 events; Cluster 43: 251 events; Cluster 44: 40 events; Cluster 45: 1364 events; Cluster 46: 201 events; Cluster 47: 224 events; Cluster 48: 310 events; Cluster 49: 315 events; Cluster 50: 80 events; Cluster 51: 55 events; Cluster 52: 184 events; Cluster 53: 1448 events; Cluster 54: 83 events; Cluster 55: 198 events; Cluster 56: 96 events; Cluster 57: 237 events; Cluster 58: 19 events; Cluster 59: 584 events; Cluster 60: 63 events; Cluster 61: 212 events; Cluster 62: 67 events; Cluster 63: 64 events; Cluster 64: 41 events; Cluster 65: 57 events; Cluster 66: 117 events; Cluster 67: 228 events; Cluster 68: 105 events; Cluster 69: 54 events; Cluster 70: 102 events; Cluster 71: 54 events; Cluster 72: 88 events; Cluster 73: 58 events; Cluster 74: 63 events; Cluster 75: 92 events; Cluster 76: 66 events; Cluster 77: 60 events; Cluster 78: 115 events; Others: 12 events\n",
      "K-means begin with 90 clusters：\n",
      "Silhouette score: 0.011, CH score: 132.008\n",
      "Cluster 1: 234 events; Cluster 2: 663 events; Cluster 3: 131 events; Cluster 4: 198 events; Cluster 5: 75 events; Cluster 6: 113 events; Cluster 7: 39 events; Cluster 8: 139 events; Cluster 9: 219 events; Cluster 10: 122 events; Cluster 11: 49 events; Cluster 12: 11 events; Cluster 13: 66 events; Cluster 14: 49 events; Cluster 15: 80 events; Cluster 16: 64 events; Cluster 17: 126 events; Cluster 18: 169 events; Cluster 19: 10 events; Cluster 20: 83 events; Cluster 21: 188 events; Cluster 22: 24 events; Cluster 23: 86 events; Cluster 24: 48 events; Cluster 25: 14 events; Cluster 26: 25 events; Cluster 27: 16 events; Cluster 28: 1119 events; Cluster 29: 134 events; Cluster 30: 30 events; Cluster 31: 699 events; Cluster 32: 14 events; Cluster 33: 136 events; Cluster 34: 29 events; Cluster 35: 260 events; Cluster 36: 726 events; Cluster 37: 50 events; Cluster 38: 38 events; Cluster 39: 133 events; Cluster 40: 11 events; Cluster 41: 1900 events; Cluster 42: 54 events; Cluster 43: 270 events; Cluster 44: 11 events; Cluster 45: 163 events; Cluster 46: 263 events; Cluster 47: 37 events; Cluster 48: 224 events; Cluster 49: 60 events; Cluster 50: 45 events; Cluster 51: 644 events; Cluster 52: 46 events; Cluster 53: 24 events; Cluster 54: 36 events; Cluster 55: 31 events; Cluster 56: 70 events; Cluster 57: 20 events; Cluster 58: 16 events; Cluster 59: 28 events; Cluster 60: 160 events; Cluster 61: 172 events; Cluster 62: 309 events; Cluster 63: 10 events; Cluster 64: 20 events; Cluster 65: 34 events; Cluster 66: 15 events; Cluster 67: 69 events; Cluster 68: 16 events; Cluster 69: 1386 events; Cluster 70: 73 events; Cluster 71: 67 events; Cluster 72: 36 events; Cluster 73: 94 events; Cluster 74: 17 events; Cluster 75: 13 events; Cluster 76: 430 events; Cluster 77: 43 events; Cluster 78: 45 events; Others: 47 events\n",
      "K-means begin with 100 clusters：\n",
      "Silhouette score: 0.041, CH score: 141.012\n",
      "Cluster 1: 66 events; Cluster 2: 81 events; Cluster 3: 310 events; Cluster 4: 475 events; Cluster 5: 36 events; Cluster 6: 131 events; Cluster 7: 37 events; Cluster 8: 29 events; Cluster 9: 91 events; Cluster 10: 541 events; Cluster 11: 47 events; Cluster 12: 26 events; Cluster 13: 424 events; Cluster 14: 47 events; Cluster 15: 138 events; Cluster 16: 123 events; Cluster 17: 195 events; Cluster 18: 199 events; Cluster 19: 53 events; Cluster 20: 102 events; Cluster 21: 52 events; Cluster 22: 53 events; Cluster 23: 60 events; Cluster 24: 653 events; Cluster 25: 106 events; Cluster 26: 49 events; Cluster 27: 88 events; Cluster 28: 28 events; Cluster 29: 260 events; Cluster 30: 65 events; Cluster 31: 1339 events; Cluster 32: 60 events; Cluster 33: 252 events; Cluster 34: 53 events; Cluster 35: 43 events; Cluster 36: 152 events; Cluster 37: 24 events; Cluster 38: 79 events; Cluster 39: 66 events; Cluster 40: 206 events; Cluster 41: 18 events; Cluster 42: 143 events; Cluster 43: 66 events; Cluster 44: 31 events; Cluster 45: 60 events; Cluster 46: 51 events; Cluster 47: 139 events; Cluster 48: 29 events; Cluster 49: 72 events; Cluster 50: 22 events; Cluster 51: 295 events; Cluster 52: 434 events; Cluster 53: 311 events; Cluster 54: 24 events; Cluster 55: 377 events; Cluster 56: 119 events; Cluster 57: 73 events; Cluster 58: 70 events; Cluster 59: 88 events; Cluster 60: 55 events; Cluster 61: 150 events; Cluster 62: 52 events; Cluster 63: 54 events; Cluster 64: 43 events; Cluster 65: 18 events; Cluster 66: 29 events; Cluster 67: 54 events; Cluster 68: 66 events; Cluster 69: 117 events; Cluster 70: 516 events; Cluster 71: 21 events; Cluster 72: 13 events; Cluster 73: 164 events; Cluster 74: 49 events; Cluster 75: 21 events; Cluster 76: 109 events; Cluster 77: 45 events; Cluster 78: 37 events; Cluster 79: 195 events; Cluster 80: 11 events; Cluster 81: 49 events; Cluster 82: 38 events; Cluster 83: 35 events; Cluster 84: 150 events; Cluster 85: 134 events; Cluster 86: 42 events; Cluster 87: 76 events; Cluster 88: 1068 events; Cluster 89: 21 events; Cluster 90: 67 events; Cluster 91: 70 events; Cluster 92: 52 events; Cluster 93: 181 events; Cluster 94: 128 events; Cluster 95: 135 events; Cluster 96: 20 events; Cluster 97: 54 events; Others: 18 events\n"
     ]
    }
   ],
   "source": [
    "Ks = np.arange(10, 101, 10)\n",
    "silh_scores = []\n",
    "CH_scores = []\n",
    "for K in Ks:\n",
    "    silh, ch = cluster_analysis(K, X)\n",
    "    silh_scores.append(silh)\n",
    "    CH_scores.append(ch)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. 结果分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\H\\Install\\Anaconda3\\lib\\site-packages\\matplotlib\\axes\\_axes.py:545: UserWarning: No labelled objects found. Use label='...' kwarg on individual plots.\n",
      "  warnings.warn(\"No labelled objects found. \"\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2042c0f99b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nnZ16/ggAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2042c15ab38>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制不同类别数时模型的轮廓系数  \n",
    "figure = plt.figure()\n",
    "plt.plot(Ks, silh_scores)\n",
    "    \n",
    "plt.xlabel('K cluster')\n",
    "plt.ylabel('Silhoutte score')\n",
    "plt.legend(loc='upper right')\n",
    "plt.show()\n",
    "\n",
    "# 绘制不同类别数时模型的CH索引      \n",
    "figure = plt.figure()\n",
    "plt.plot(Ks, CH_scores)\n",
    "    \n",
    "plt.xlabel('K cluster')\n",
    "plt.ylabel('CH score')\n",
    "plt.legend(loc='upper right')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从整个趋势来看，当类别数为10时，聚类性能最好，但轮廓系数依然很低，小于0.2，说明当 K>=10 时，数据可能不存在聚类特征。\n",
    "\n",
    "另外，聚类后每一类数据不均衡，均出现某些类含有样本数很小的情况，相对于样本总数与类别数来说并不合理。\n",
    "\n",
    "可再尝试 K<10 的情况。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "K-means begin with 5 clusters：\n",
      "Silhouette score: 0.158, CH score: 1074.045\n",
      "Cluster 1: 822 events; Cluster 2: 4457 events; Cluster 3: 408 events; Cluster 4: 7231 events; Cluster 5: 500 events; Others: 0 events\n",
      "K-means begin with 6 clusters：\n",
      "Silhouette score: 0.141, CH score: 892.571\n",
      "Cluster 1: 4330 events; Cluster 2: 120 events; Cluster 3: 7044 events; Cluster 4: 1109 events; Cluster 5: 301 events; Cluster 6: 514 events; Others: 0 events\n",
      "K-means begin with 7 clusters：\n",
      "Silhouette score: 0.136, CH score: 808.610\n",
      "Cluster 1: 249 events; Cluster 2: 265 events; Cluster 3: 6406 events; Cluster 4: 872 events; Cluster 5: 1201 events; Cluster 6: 4057 events; Cluster 7: 368 events; Others: 0 events\n",
      "K-means begin with 8 clusters：\n",
      "Silhouette score: 0.116, CH score: 723.729\n",
      "Cluster 1: 5523 events; Cluster 2: 207 events; Cluster 3: 170 events; Cluster 4: 272 events; Cluster 5: 3910 events; Cluster 6: 726 events; Cluster 7: 1187 events; Cluster 8: 1423 events; Others: 0 events\n",
      "K-means begin with 9 clusters：\n",
      "Silhouette score: 0.139, CH score: 672.909\n",
      "Cluster 1: 661 events; Cluster 2: 5065 events; Cluster 3: 230 events; Cluster 4: 153 events; Cluster 5: 122 events; Cluster 6: 14 events; Cluster 7: 489 events; Cluster 8: 579 events; Cluster 9: 6105 events; Others: 0 events\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\H\\Install\\Anaconda3\\lib\\site-packages\\matplotlib\\axes\\_axes.py:545: UserWarning: No labelled objects found. Use label='...' kwarg on individual plots.\n",
      "  warnings.warn(\"No labelled objects found. \"\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2042c301f28>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nZN57AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2042c2c4ac8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "Ks1 = [5, 6, 7, 8, 9]\n",
    "silh_scores1 = []\n",
    "CH_scores1 = []\n",
    "for K in Ks1:\n",
    "    silh, ch = cluster_analysis(K, X)\n",
    "    silh_scores1.append(silh)\n",
    "    CH_scores1.append(ch)\n",
    "    \n",
    "# 绘制不同类别数时模型的轮廓系数  \n",
    "figure = plt.figure()\n",
    "plt.plot(Ks1, silh_scores1)\n",
    "    \n",
    "plt.xlabel('K cluster')\n",
    "plt.ylabel('Silhoutte score')\n",
    "plt.legend(loc='upper right')\n",
    "plt.show()\n",
    "\n",
    "# 绘制不同类别数时模型的CH索引      \n",
    "figure = plt.figure()\n",
    "plt.plot(Ks1, CH_scores1)\n",
    "    \n",
    "plt.xlabel('K cluster')\n",
    "plt.ylabel('CH score')\n",
    "plt.legend(loc='upper right')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以发现，5<K<10 时聚类性能略好（轮廓系数显示在K=5时效果最好，但结果有一定的随机性），轮廓系数仍没有超过 0.2，且类别数较少，对实际问题来说可能也并不合理。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
